perm filename DFTP.MRC[UP,DOC]7 blob sn#281110 filedate 1977-05-10 generic text, type C, neo UTF8
COMMENT ⊗   VALID 00030 PAGES
C REC  PAGE   DESCRIPTION
C00001 00001
C00002 00002
C00003 00003
C00006 00004
C00009 00005
C00012 00006
C00015 00007
C00018 00008
C00020 00009
C00023 00010
C00027 00011
C00031 00012
C00034 00013
C00037 00014
C00039 00015
C00042 00016
C00045 00017
C00048 00018
C00051 00019
C00054 00020
C00057 00021
C00060 00022
C00062 00023
C00065 00024
C00068 00025
C00070 00026
C00071 00027
C00073 00028
C00076 00029
C00079 00030	
C00080 ENDMK
C⊗;
















                 Computer Corporation of America



                      Technical Bulletin 1










                        DFTP User's Guide










                           April 1977



                           W. R. Bush







                          Introduction



     DFTP is a user-invoked file archiving program that, via  the

Arpanet,  stores and retrieves local files on the Datacomputer, a

dedicated data management system.  This Introduction is  intended

to  provide  information sufficient for basic use of the program.

A general description of it and information on its more  esoteric

features can be found in the following sections.

     DFTP command processing is similar  to  that  in  TENEX  and

TOPS-20.   Both <control-A> and <rubout> delete a character, both

<control-U>  and  <control-X>  delete  a  line,  and  <control-R>

retypes  a line.  A <space> or <escape> can be used to complete a

command (for example, typing DI<space> is  equivalent  to  typing

DIRECTORY).

     Since DFTP's primary function is file storage and retrieval,

the  most  fundamental commands are those that store and retrieve

files -- PUT and GET.  Both take as an argument the name  of  the

file  of  interest  (in  the  standard format of name followed by

optional extension), so that

          PUT MAIL.TXT

causes the local file MAIL.TXT to be shipped over the network  to

the Datacomputer, and

          GET MAIL.TXT retrieves it.

     Groups of files may be moved with one command by using a '*'

in  either or both the name and extension parts of the file name.

Thus


                              - i -




          PUT MAIL.*

stores all files with the name MAIL, and

          GET *.TXT

retrieves all files with the extension TXT.

     Files  may  be  given  different  names  when   stored   and

retrieved.   This  is  accomplished  by  inputting  a  <space> or

<escape> after the first file name, so that

          PUT MAIL.TXT<space>MAIL.15-APRIL-1977

stores the local file MAIL.TXT as MAIL.15-APRIL-1977, and

          GET MAIL.15-APRIL-1977<space>MAIL.OLD

retrieves the stored file MAIL.15-APRIL-1977 as  the  local  file

MAIL.OLD.

     Different versions of the same file can be stored, with  the

Datacomputer assigning higher numbers to more recent files.  Thus

storing  one  day's  messages  as MAIL.TXT, and later storing the

next day's messages as MAIL.TXT  results  in  two  files  on  the

Datacomputer,   MAIL.TXT;1   (the   messages  stored  first)  and

MAIL.TXT;2 (the messages  stored  later).   Version  numbers  are

denoted  as in TENEX, with the number following the file name and

separated from it by a ';'.   Version  numbers  may  be  used  in

retrieving files, so that

          GET MAIL.TXT;1

retrieves the first version of the file.  If no version number is

given,  DFTP  uses the largest as the default.  A '*' may be used

in the version number field, so that

          GET MAIL.TXT;*

retrieves all versions.



                             - ii -




     Nearly as fundamental as storing  and  retrieving  files  is

finding  out  what  files have been stored -- what files exist on

the Datacomputer.  The DIRECTORY command performs this  function,

taking  as  its  argument a file name similar to that accepted by

PUT and GET.  Thus

          DIRECTORY *.TXT

lists all stored files with the extension TXT.  Note that

          DIRECTORY <space>

(DFTP echoes the <space> as '*.*;*') causes all stored  files  to

be  listed.  The command takes as a subargument the specification

of the amount of information desired about the listed  files.   A

<space>,  equivalent  to  TERSE, lists files and their sizes. The

VERBOSE  option  additionally  lists  the  date  the   file   was

originally   created   and   the   date  it  was  stored  on  the

Datacomputer.

     Another important  facility  is  the  ability  to  eliminate

unwanted  files on the Datacomputer.  This is done via the DELETE

and EXPUNGE commands.

     The DELETE command, taking  as  its  argument  a  file  name

similar  to that accepted by PUT and GET, marks files as deleted,

but does not permanently remove them.  Deleted status is  only  a

conditional  state.   Deleted  files may be listed by the DELETED

option of the DIRECTORY command, and a file's deleted status  may

be rescinded by the UNDELETE command.  The UNDELETE command takes

as its argument a file name similar to DELETE.  Thus

          DELETE MAIL.*

marks all files with the name MAIL as deleted, and



                             - iii -




          UNDELETE MAIL.15-APRIL-1977

rescinds the deleted status of the file MAIL.15-APRIL-1977.  Note

that, for files of which there are multiple versions, the default

for  DELETE  is  the  (undeleted)  file with the smallest version

number, and for UNDELETE is the (deleted) file with  the  largest

version number.

     The EXPUNGE  command  permanently  removes  all  files  then

marked  as deleted, recovering the space used by those files.  It

takes no arguments (as far as this  Introduction  is  concerned),

and is invoked by typing

          EXPUNGE <space><space>

(DFTP echoes the first <space> as '<').

     The QUIT command causes a graceful exit from DFTP.




               Introduction to Additional Commands



     The commands described  in  the  followings  paragraphs  are

useful,  but  are  not  necessary for ordinary use of DFTP.  They

introduce  complexities  discussed  in   later   sections.    The

information and explanations in this section are of limited scope

in an attempt to keep the complexity at a minimum.

     The commands discussed here are  motivated  by  one  general

concern  --  the desire to divide a user's file space into parts.

DFTP allows such separation via user-specified  named  groupings,

called  subdirectories.  For example, one typically divides files

into classes by type,  such  as  MESSAGES,  SOURCES,  and  GAMES.




                             - iv -




Subdirectories may be thought of as containing files and as being

under  --  subordinate  to -- the user's Datacomputer identity --

the user's name.  For example, the user HACKER at CCA has, on the

datacomputer, under the  user  name  HACKER,  the  subdirectories

MESSAGES,  SOURCES,  and  GAMES.   One  need  not  have  separate

subdirectories -- all one's files may be  stored  directly  under

one's  user  name.   Alternatively,  some  files  may  be  stored

directly  under  one's   user   name   and   some   in   separate

subdirectories,   or   all   files  may  be  stored  in  separate

subdirectories.

     All the commands in the  preceding  section  operate  within

only  one subdirectory at a time.  The CONNECT command is used to

choose which subdirectory is of interest.  Once a subdirectory is

chosen, all PUT's, GET's, DIRECTORY's, DELETE's, UNDELETE's,  and

EXPUNGE's  operate  within  that  subdirectory  until  another is

chosen.  Thus

          CONNECT MESSAGES

selects the MESSAGES  subdirectory.   CONNECT  also  creates  new

subdirectories.  If in the above example, MESSAGES did not exist,

DFTP  would  inform  the user of that fact with the comment '[New

Node]', and would ask for confirmation to proceed  and  make  the

new subdirectory.

     The files stored directly under one's user  name  are  in  a

special  subdirectory.   At  the  beginning  of  a  session  this

subdirectory is the default  subdirectory  that  all  PUT's  etc.

operate in (making possible use of DFTP by people who are unaware

of  subdirectories).   If  one  has  explicitly CONNECTed to some



                              - v -




other subdirectory and wishes to  go  back  and  reference  files

directly under one's user name,

          CONNECT <space>

(DFTP  echoes  the  <space>  as  '<<')  will  perform the desired

function.

     One may see one's existing subdirectories, when connected to

the initial default subdirectory, via the LIST  command,  in  the

form

          LIST <space>

(DFTP  echoes  the  <space>  as  '**').  LIST takes a subargument

similar to DIRECTORY.  A <space>,  equivalent  to  TERSE,  simply

lists  the  subdirectories,  while  VERBOSE  lists  all available

information about them, including megabits allocated  (MX-U)  and

used  (CHRG).   The  symbol  <FILES>  indicates  that  some files

actually exist in the associated subdirectory.

     One  may  delete  subdirectories  and  their   files,   when

connected  to  the  initial  default subdirectory, via the REMOVE

command.  The subdirectory name given the command as its argument

should be terminated in a <space>.  Thus

          REMOVE MESSAGES<space>

(DFTP echoes the <space> as '>**')  eliminates  the  subdirectory

MESSAGES and all files in it.













                             - vi -







                            Overview



     The Datacomputer is a shared large-scale data  base  utility

offering  data  storage  and  data  management  services to other

computers on the Arpanet.  The system is a  centralized  facility

for archiving data, for sharing data among various network hosts,

and  for  providing inexpensive on-line storage for sites needing

to  supplement  their  local  capability.   The  Datacomputer  is

implemented  on  dedicated  hardware  and  comprises  a  separate

computing system specialized for data management.  The system can

be viewed logically as a closed box shared by  multiple  external

processors   and   accessed   in   a   standard  notation  called

Datalanguage.

     The Datacomputer File Transfer  Program  (DFTP)  provides  a

convenient  method  for storing and retrieving local files on the

Datacomputer  via  the  Arpanet.   DFTP  translates  simple  user

commands  into  Datalanguage,  sends the Datalanguage and data to

the Datacomputer, processes the messages and data  returned  from

the Datacomputer, and notifies the user of the results.




                          The Directory



     The DFTP Datacomputer directory is a tree, with  site  nodes

beneath  a  common  root node, user nodes beneath site nodes, and

optional subdirectories of arbitrary depth  and  breadth  beneath



                              - 1 -




user  nodes.   Files  are  stored  in  special  leaf nodes called

<FILES> nodes.  Pictorially,

                       <ROOT>
                       /    \
                   SITE      SITE    ...
                  /    \
              USER      USER    ...
             /    \
       <FILES>     SUBDIRECTORY    ...
                  /            \
            <FILES>             SUBDIRECTORY    ...
                                            \
                                            <FILES>    ...

The <FILES> nodes are the repositories of  all  data.   To  avoid

ambiguity,  there can be only one <FILES> node directly under any

given user or subdirectory node.

     There  are  two  basic  types  of  commands  --  those  that

reference  only  nodes  and  those  that reference files within a

<FILES> node.  Node level commands are used for manipulating  the
               ←←←← ←←←←← ←←←←←←←←

global  directory  structure of sites, users, and subdirectories.

A node level command takes a node path (described below)  as  its
                             ←←←← ←←←←

argument.   File level commands are used for storing, retrieving,
            ←←←← ←←←←← ←←←←←←←←

and modifying files within a <FILES> node.  A file level  command

takes  as  its  argument  a file name (described below) or a node
                            ←←←← ←←←←

path followed by a file name, called a file path (for referencing
                                       ←←←← ←←←←

files under nodes other than the defaults used by DFTP).




                        Referencing Nodes



     The mechanism for referencing a node, called a node path, is
                                                    ←←←← ←←←←

a means of specifying a path  through  the  directory  tree.   It

consists of a context and a node list.
              ←←←←←←←       ←←←← ←←←←


                              - 2 -




     Contexts  provide  convenient  anchoring  points  for   node
     ←←←←←←←←

references.   The  three  contexts  are top, attach, and connect,
                                        ←←←  ←←←←←←      ←←←←←←←

indicated by '<<<', '<<', and '<' respectively.

     The top context provides an absolute starting point for node

references.  It anchors a reference to the highest fixed star  in

the  directory  firmament  --  the  <ROOT>  node.  One may always

reference any node in the directory by indicating the top context

and  then  listing  all  the   nodes   (the   site,   user,   and

subdirectories) between the <ROOT> node and the node of interest.

The  context  also  allows  reference to nodes higher in the tree

(sites and users) than the other contexts.

     The attach context is set, automatically at the beginning of

a session by DFTP, to be the user's user node.   Thus  references

to  subdirectories, if prefaced with the attach context, need not

include the site and user (as compared  with  the  top  context).

The  context  can  be  changed  by the ATTACH command, usually to

another user.  The attach context provides a fixed point above  a

user's  subdirectories  for manipulating and choosing among them.

     The connect context is set, automatically at  the  beginning

of  a  session by DFTP, to be the same as the attach context.  It

is conceptually similar to the attach context in being a  movable

point  in  the  directory,  but  it is usually lower in the tree,

usually a  subdirectory.   It  can  be  changed  by  the  CONNECT

command,  usually  to  another  subdirectory.   It is usually the

point from which files are referenced.

     Contexts need not be  explicitly  given  by  the  user  when

specifying  a  node  path.   For the default contexts provided by



                              - 3 -




DFTP see the Command Input section.  Note also that a context can

be a complete node  reference.   A  node  may  be  referenced  by

specifying  only  a context (without a node list) if that context

has been previously set to that node.  For  example,  one's  user

node may be referenced via the attach context.

     A node  list  consists  of  a   sequence   of   node   names
       ←←←←  ←←←←

(consecutive  levels  in the tree) separated by '>'s.  A password

may be necessary in acquiring access privileges at  a  particular

node,  in  which  case  the  node name is followed by ':' and the

password.  Sets of nodes can be referenced  --  all  nodes  at  a

particular level are indicated by '*', and all inferior nodes are

designated  by  '**' (which can occur only at the end of the node

list).

     For example:

          <<<CCA>HACKER:DINKUP>WALDO

Starting at  the  top  context,  the  node  path  references  the

subdirectory  WALDO  under  user  HACKER  at  site  CCA (with the

password DINKUP supplied to gain access to HACKER).

          <<WALDO>**

Starting at the attach context,  the  node  path  references  the

subdirectory  WALDO  and  all inferior nodes.  Note that WALDO is

included -- the REMOVE command, for  example,  would  delete  the

node WALDO as well as its inferiors.











                              - 4 -




                        Referencing Files



     File names have the same form as TENEX file names:  a  name,
     ←←←← ←←←←←

an  optional extension, and an optional version number.  The name

is separated from the extension by a period,  and  the  extension

from  the  version  number  by  a  semicolon.   File  sets may be

indicated by an asterisk in any or all of the fields.

     Version numbers allow unambiguous reference  of  files  that

have  the  same  name  and  extension.   DFTP assigns each file a

version number which is unrelated to its TENEX or TOPS-20 version

number.  Later  versions  of  a  file  with  the  same  name  and

extension  receive  higher version numbers.  If the user does not

explicitly supply a version number  in  referencing  an  existing

file, DFTP provides a default.

     All  commands  that  accept  a  file  name  as   input   can

alternatively  accept  a file path, which consists of a node path
                         ←←←← ←←←←

followed by a file name.  The two parts  are  separated  by  '>',

unless  the node path is only a context, in which case the '>' is

omitted.

     Note that the user never specifies a <FILES> node explicitly

in referencing a file.  If a file path is given, DFTP expands the

reference to refer to the given file in the  <FILES>  node  under

the  given  node.  If only a file name is given, DFTP expands the

reference to refer to the given file in the  <FILES>  node  under

the default context node.

     For example:





                              - 5 -




          MAIL.TXT

The  file  name  references the file MAIL.TXT in the <FILES> node

under the connect context.

          <*.SAV;*

The file name references all  versions  of  all  files  with  the

extension SAV in the <FILES> node under the connect context.

          <<MACROS>COMMON>SYSMAC.MAC

Starting at the attach context (presumably a user node), the file

path references the file SYSMAC.MAC in the <FILES> node under the

COMMON subdirectory of the MACROS subdirectory.




                          Command Input



     DFTP command input is similar to  TENEX  and  TOPS-20,  with

command  recognition  and  a  combination  of  TENEX  and TOPS-20

editing controls.  In particular,

          <control-A> and <rubout> delete a character,

          <control-R> retypes a line,

          <control-U> and <control-X> delete a line,

          <escape> and <space> are separators, and

          <carriage return>, <line feed>

                    and <end of line> are terminators.

     Node-oriented commands take node paths as  their  arguments.

File-oriented  commands  take  file  names or file paths as their

arguments.






                              - 6 -




     The connect context is   the   default   context   for   all

commands   except   ATTACH  and  CONNECT,  which  have  as  their

respective defaults the top context and the attach context.

     Many commands have  default  arguments  and  trailers  which

are invoked  by  giving  a  space  or  escape  as the argument or

argument terminator.   The  default  argument  is  '<<'  for  the

CONNECT  command,  '<'  for  EXPUNGE,   and  '**'  for  LIST  and

REMOVE,  which  is also the default trailer.  For DIRECTORY, GET,

PUT, DELETE, and UNDELETE,  the   default  argument  and  trailer

(after  a  '>') is '*.*;*'.  The default option for DIRECTORY and

LIST is TERSE.




                     Node-Oriented Commands



     The ATTACH command sets  the  attach  context  (and  connect

context) and initiates Datacomputer accounting functions.

     The BIG command is used for indicating that  a  subdirectory

is  to be a large one.  It creates an expanded <FILES> node under

the node given as the command argument.

     The CONNECT command sets the connect  context  (and  creates

new subdirectories).

     The EXPUNGE command removes files marked as deleted from the

<FILES>  node  under  the node given as the command argument.  If

the <FILES> node contains no files (deleted or undeleted)  it  is

removed from the Datacomputer directory.






                              - 7 -




     The LIST command lists  Datacomputer  nodes  (sites,  users,

subdirectories,  and  <FILES>)  and  information about them.  The

information displayed by the VERBOSE option comes  directly  from

the Datacomputer.

     The REMOVE  command  removes  nodes  from  the  Datacomputer

directory.   They  must  either have no inferior nodes (including

<FILES> nodes), or be part of a node set that  includes  inferior

nodes  ('**').   Data  stored  under  removed  nodes will also be

deleted.




                     File-Oriented Commands



     File deletion operates  as  with  TENEX  and  TOPS-20.   The

DELETE  command  marks  files  as deleted, but does not eliminate

them.  They can be listed via the VERBOSE option of the DIRECTORY

command, and their deleted status can be changed by the  UNDELETE

command.  The  removal  of  deleted  files  is  deferred until an

EXPUNGE is performed on the <FILES>  node  containing  them.  The

default version number is the lowest undeleted, unless a file set

is  indicated, in which case all versions in the set are deleted.

     The DIRECTORY command  lists  files  and  information  about

them.  The VERBOSE option lists deleted and undeleted files (with

deleted  ones indicated by 'D' after the name), the date and time

created (for TOPS-10 and ITS  sites),  the  date  and  time  last

written  (for TENEX and TOPS-20 sites), the date and time stored,

and the size.  For files stored from TENEX and TOPS-20 sites  the




                              - 8 -




size  information  is in the form <number of bytes>(<byte size>).

For files stored from TOPS-10 and ITS sites the information is in

the form <number of  36  bit  words>(-<data  mode)).   The  TERSE

option lists undeleted files and their sizes (in the same form as

the  VERBOSE  option).   The  DELETED option is the equivalent of

TERSE for deleted files.   The  default  version  number  is  the

highest  undeleted, unless a file set is indicated, in which case

information for all versions in the set is listed.

     The  EXAMINE  command  lists  on  the  user's  terminal  the

contents of the files given as the command argument.  The listing

of an individual file may be aborted by answering in the negative

the 'More?' prompt, which DFTP gives every few lines.

     The GET and PUT commands retrieve and store local disk files

on the Datacomputer. Files of any type (text or binary image, for

example)  can  be  stored.   If  a  synonym  is not supplied, the

Datacomputer file name is used as the local file  name.   If  the

first argument to either command is completed with an escape or a

space,  the  synonym  option  is  invoked  and  the commands then

operate in the form

          GET Datacomputer file [AS] local file, and

          PUT local file [AS] Datacomputer file.

For the GET command the default version  number  is  the  highest

undeleted,  unless  a  file  set  is indicated, in which case all

versions of the set are retrieved.   The  PUT  command  sets  the

version  number  of  the file being stored to be one greater than

the highest version of existing files  with  the  same  name  and

extension.  Note that a file set indicated in any file name field



                              - 9 -




is treated as if all existing files had the same field -- storing

*.*  results  in  the  stored files receiving version numbers one

greater than the highest version number  found  in  any  existing

file.

     The RENUMBER command changes a file's version number.  It is

the  only  mechanism  available to the user for affecting version

numbers.  The user specifies the file to be changed, after  which

DFTP  asks  for  the  new  version  number.   File  sets  may  be

specified, but only if a version number is explicitly given  with

the  file  set.   The  default  old  version number is the lowest

undeleted.  The default new version number is 1.

     The UNDELETE command rescinds a file's deleted status.   The

default  version number is the highest deleted, unless a file set

is  indicated,  in  which  case  all  versions  in  the  set  are

undeleted.




                     Miscellaneous Commands



     The   SHOW-DATALANGUAGE   and    NO-DATALANGUAGE    commands

respectively  allow and inhibit the output to the user's terminal

of the messages sent to and received from the Datacomputer.

     Data transfer rates are calculated and  given  to  the  user

when   the   TIME-TRANSFERS   command   has  been  invoked.   The

calculations are avoided with the UNTIME-TRANSFERS command.

     QUIT   exits   gracefully   from   DFTP,   closing   network

connections.




                             - 10 -




                            Responses



     There are three types of messages that DFTP gives the  user.

Comments    surrounded   by   square   brackets   are   primarily

informational  messages,  and  are  never  errors.    Parentheses

enclose non-fatal errors and informational Datacomputer messages,

such  as  '(LEBAR2:  ERROR:  NO  SUCH  FILE)',  resulting from an

attempt to DELETE a nonexistent file, and '(SXPF9:  STAGING  DATA

FOR FILE = DFTP.CCA.DFTP.<FILES>)', indicating that data is being

moved  from  tertiary  mass  memory  to  secondary buffer memory.

These messages come directly from the Datacomputer, indicated  by

the  name  and  colon  at  the  head of the message.  Fatal error

messages are surrounded by question marks, and  of  course  never

occur.




                     Site Dependent Features



     For  the  TENEX  and  TOPS-20  versions,  the  EXEC  command

provides  the  user  with an inferior exec, which is flushed when

the user returns to DFTP.  Where a local file  name  is  possible

(in  the GET and PUT commands) an initial space or escape invokes

name recognition, indicated by a '>' prompt.  A  <control-O>  can

be  used to halt the output from the LIST and DIRECTORY commands.

     For the TOPS-10 version, the LOCAL-DIRECTORY  command  lists

the  user's  local  file  directory.  The LOCAL-STRUCTURE command

sets the file structure (e.g. DSKC:), and the LOCAL-USER  command




                             - 11 -




sets  the  project and programmer.  Both commands affect the GET,

PUT, and LOCAL-DIRECTORY commands.

     For the ITS  version  the  LOCAL-CONNECT  command  specifies

which  SNAME  (local  directory)  is  used  for  the  GET and PUT

commands.  If a carriage return is typed with  no  argument,  the

user's  default  SNAME  is used.  The TERSE command (unset by the

VERBOSE command) suppresses informational  Datacomputer  messages

(such   as   the   staging   message   below),   and  performs  a

NO-DATALANGUAGE and an UNTIME-TRANSFERS.




                         Access Control



     DFTP access control uses a subset of the  full  Datacomputer

mechanism.   A  complete  discussion  of  Datacomputer  privilege

facilities can be found in the current Datacomputer User  Manual.

     Access privileges are defined in privilege  blocks  attached

to  nodes  in  the  directory.   A  node  may  have any number of

privilege blocks attached to it.  Each block consists of a set of

privileges and a class of users to whom that set  applies.   DFTP

provides two classes of access, control and read.  Control allows

users  to  ATTACH to a node, CREATE and ALLOCATE nodes below that

node, CHANGE privileges at and below that node, and read,  write,

and  delete  data stored below that node.  Read only allows users

to ATTACH to a node and read data stored  under  it.   All  other

users are denied everything but the ability to LIST nodes.  Users

are  identified either by passwords, or by their network identity




                             - 12 -




(defined by the host  and  socket  from  which  they  access  the

Datacomputer),  or  both.   Some  systems  enforce  assignment of

socket numbers according to the user's identity on  that  system,

thus providing convenient automatic identification to DFTP.

     When a user attemps to access a node,  or  manipulate  nodes

and  data  under  it, the Datacomputer compares the user with the

user classes identified in privilege blocks  on  that  node,  and

assigns the corresponding class of privileges.  If no set matches

the  user,  no  privileges are allowed.  the privilege blocks are

scanned in the order of creation, and if a user matches more than

one block, the first takes effect.  Access controls  are  set  by

the  CHANGE  and  CREATE  commands,  described  in  the following

section.




                       Privileged Commands



     Privileged  commands  are  made  available  via  the  ENABLE

command.   Its action is marked by a change in the command prompt

from '*' to '!'.   The  DISABLE  command  undoes  the  effect  of

ENABLE.

     The ALLOCATE command is used to set the  maximum  number  of

megabits  a  user  may  consume.   It  can  also  be  used to set

subdirectory  limits.   Allocations  are  made  and  reported  in

megabits  -- 1,013,760 bits to be precise, the size of a block on

the Datacomputer's tertiary memory.  A megabit is  roughly  equal

to 55 512-word pages, or 220 128-word blocks.




                             - 13 -




     The CHANGE command redefines the access control  information

for  a  given  node.   It  deletes  all  existing  access control

information  (privilege   blocks),   then   builds   new   blocks

interactively  with  the  user.  The PROTECTION subcommand of the

LIST command can be used  to  examine  the  privilege  blocks  of

nodes.

     The CREATE command is used to create a node for a new  user.

After  the node has been created, the access control is specified

as with the CHANGE command.

     The LINK command allows the user to send Datalanguage to the

Datacomputer.  Each line of  input,  prompted  by  '>',  is  sent

directly  to  the  Datacomputer,  without any processing by DFTP.

Return to DFTP command input is  achieved  by  inputting  a  null

line.





























                             - 14 -




               Examples Using Privileged Commands


;Attach to a node.
; (gain control at site CCA by supplying the proper password)
*ATTACH <<<CCA:
*ENABLE

;Create a user and privileges.
; (the first privilege allows creation and deletion for
;   local user HACKER upon supplying the password "ETAOIN")
; (the second privilege allows creation and deletion for
;   anyone from Harvard (host 11) upon supplying the password "SHRDLU")
; (the third privilege allows anyone read)
!CREATE HACKER
 [OK]
 Add a new privilege? Yes
  Allow control? Yes
  Restrict via network? Yes
   Restrict via local host? Yes
   Restrict via user? Yes
    User: HACKER
  Restrict via password? Yes
   Password: ETAOIN
  [OK]
 Add a new privilege? Yes
  Allow control? Yes
  Restrict via network? Yes
   Restrict via local host? No
    Site: 11
   Restrict via user? No
  Restrict via password? Yes
   Password: SHRDLU
  [OK]
 Add a new privilege? Yes
  Allow control? No
  Restrict via network? No
  Restrict via password? No
  [OK]
 Add a new privilege? No
;List the privileges.
; (in Datacomputer format (passwords are never listed))
!LIST HACKER
!!PROTECTION
    CCA
        HACKER
            ] (1),U=**,H=31,S=12582928,G=CLWRA
            ] (2),U=**,H=9,S=ANY,G=CLWRA
            ] (3),U=**,H=ANY,S=ANY,G=LR







                             - 15 -




;Replace the privileges.
; (the first privilege allows creation and deletion for
;   local user HACKER)
; (the second privilege allows anyone read
;   upon supplying the password "WALDO")
; (the "[OK]" indicates that the previous privileges have been deleted)
!CHANGE HACKER
 [OK]
 Add a new privilege? Yes
  Allow control? Yes
  Restrict via network? Yes
   Restrict via local host? Yes
   Restrict via user? Yes
    User: HACKER
  Restrict via password? No
  [OK]
 Add a new privilege? Yes
  Allow control? No
  Restrict via network? No
  Restrict via password? Yes
   Password: WALDO
  [OK]
 Add a new privilege? No
;List the privileges.
!LIST HACKER
!!PROTECTION
    CCA
        HACKER
            ] (1),U=**,H=31,S=12582928,G=CLWRA
            ] (2),U=**,H=ANY,S=ANY,G=LR

;List all information.
; ("MX-U" indicates the maximum allocation in megabits)
!LIST HACKER
!!VERBOSE
    CCA
        HACKER
            ] MX-U=10.00 CHRG=0.00
            ] IN-N=0 IN-F=0
            ] CREA=761101052805
;Change the allocation.
; (decrease the allocation from 10 megabits to 2 megabits)
!ALLOCATE HACKER
 [Megabits:2]
;List all information.
!LIST HACKER
!!VERBOSE
    CCA
        HACKER
            ] MX-U=2.00 CHRG=0.00
            ] IN-N=0 IN-F=0
            ] CREA=761101052805




                             - 16 -




                            Commands


ATTACH <node path>

BIG <node path>

CONNECT <node path> (1)

DELETE <file path> (4) (5)

DIRECTORY <file path> (4) (6) (8)
        DELETED
        TERSE
        VERBOSE

EXAMINE <file path> (4) (6)

EXPUNGE <node path> (2)

GET (RETRIEVE) <file path> [local file name synonym] (4) (6) (9)

LIST <node path> (3) (8)
        TERSE
        VERBOSE

NO-DATALANGUAGE

PUT (STORE) <file path> [remote file path synonym] (4) (9)

QUIT

REMOVE <node path> (3)

RENUMBER <file path> (5)
        Version number: <decimal integer>

SHOW-DATALANGUAGE

TIME-TRANSFERS

UNDELETE <file path> (4) (7)

UNTIME-TRANSFERS












                             - 17 -




                     Site Dependent Commands


EXEC (10)


LOCAL-DIRECTORY (11)

LOCAL-STRUCTURE <string> (11)

LOCAL-USER (11)
        Project: <octal integer> (12)
        Programmmer: <octal integer> (12)


LOCAL-CONNECT <string> (13)

TERSE (13)

VERBOSE (13)




































                             - 18 -




                       Privileged Commands


ALLOCATE <node path>
    Megabits: <decimal integer>

CHANGE <node path>
    Add a new privilege? <Y or N>
        Allow write? <Y or N>
        Restrict via network? <Y or N>
            Restrict via local host? <Y or N>
                Host number (octal): <octal integer>
                  (if host not local)
            Restrict via user? <Y or N>
                Socket number (octal): <octal integer>
                  (if user restricted and host not local)
                User: <user name> (14)
                  (if user restricted and host local)
        Restrict via password? <Y or N>
            Password: <string>

CREATE <node path>
    (see CHANGE)

DISABLE

ENABLE

LINK (15)

LIST <node path>
    PROTECTION
























                             - 19 -






Notes:

     Required input is indicated by angle brackets.

     Optional input is indicated by square brackets.

     The connect context is the default context for all  commands
          except   ATTACH   and  CONNECT,  which  have  as  their
          respective defaults the  top  context  and  the  attach
          context.

     (1) The default argument is <<.

     (2) The default argument is <.

     (3) The default argument (and trailer) is **.

     (4) The default argument (and trailer) is *.*;*.

     (5) The default version is the lowest undeleted.

     (6) The default version is the highest undeleted.

     (7) The default version is the highest deleted.

     (8) On TENEX and TOPS-20 sites,  a  <control-O>  will  abort
          output.

     (9) On TENEX  and  TOPS-20  sites,  an  initial  <space>  or
          <escape>  as  file  name  input invokes local file name
          recognition.

     (10) Available on TENEX and TOPS-20 sites only.

     (11) Available on TOPS-10 sites only.

     (12) The argument is a <string> on SAIL sites.

     (13) Available on ITS sites only.

     (14) A directory name if  TENEX  or  TOPS-20,  a  programmer
          number if TOPS-10 (not used on SAIL or ITS).

     (15) A null input line returns the user to command mode.










                             - 20 -




                              Paths



<node path> :: =  <context>
                | <node list>
                | **
                | <context> **
                | <context> <node list>
                | <context> <node list> > **
                                        ←
                | <node list> > **
                              ←

<context> ::=     <             (connect context)
                  ←
                | <<            (attach context)
                  ←←
                | <<<           (top context)
                  ←←←

<node list> ::=   <node>
                | <node> > <node list>
                         ←

<node> ::=        <name>
                | <name> : <password>
                | *


<file path> ::=   <file name>
                | <context> <file name>
                | <node list> > <file name>
                              ←
                | <context> <node list> > <file name>
                                        ←

<file name> ::=   <file>
                | <file> .
                | <file> . <extension>
                | <file> ; <version>
                | <file> . ; <version>
                | <file> . <extension> ; <version>

<file> ::= <name> | *

<extension> ::= <name> | *

<version> ::= <number> | *



Notes:
     Underscored  angle  brackets  are  literal  characters   and
          accepted by DFTP as such.
     Any printing ASCII characters except <, >, ., :,  *,  ?,  ',
          and " may be used in a <name>.
     Any printing ASCII characters (plus space) except >,  .,  ',
          and " may be used in a <password>.





                             - 21 -